课程 |《深度学习原理与TensorFlow实践》学习笔记(二)
第二部分笔记来啦~~~
边听课边看笔记效果更好哦~
看完不要忘记五星好评,
顺便再关注一下我们的系列课程
《深度学习从基础到真实项目实战》~~
(深度学习原理/TensorFlow实践+图像识别应用+在线答疑)
作者 | 王清
TensorFlow基础使用
环境准备
TensorFlow安装
常用Python库介绍
实例解析
Kaggle平台及Titanic题目介绍
代码解析
TensorBoard 可视化
传统机器学习的优化技巧
数据可视化
特征工程
经典机器学习算法模型
TFLearnKeras介绍及示例程序解析
环境准备
TensorFlow安装
官方文档:https://www.tensorflow.org/install/
常用Python库介绍
NumPy (http://www.numpy.org/)
为Python提供基础科学计算能力。
Numpy快速入门:http://cs231n.github.io/python-numpy-tutorial/
pandas (http://pandas.pydata.org/)
高性能数据结构和数据分析工具,提供了一种高效的DataFrame结构,可以自动对齐、补全数据,免去了由于输入数据缺失导致的问题。
Matplotlib (http://matplotlib.org/)
功能强大的画图引擎,可以制作高质量的图表。
PIL (http://www.pythonware.com/products/pil/)
标准图片处理库,能够方便地读入和输出包括 jpg、png 等多种常见类型的图像文件,还能对图像做切割、翻转、添加文字等变换。
Jupyter Notebook (http://jupyter.org/)
开源的交互式数据分析处理平台,以 Web 网页的形式创建和分享文档,并可以在文档中插入代码段,交互式的查看代码运行结果。
scikit-learn (http://scikit-learn.org/)
机器学习工具库,封装了多种常用的分类、回归、聚类、数据将为、数据预处理等方法。
OpenCV (http://opencv.org/)
跨平台机器视觉工具库,包含大量计算机视觉基本算法和高级功能。
One Platform to Have Them All – Anaconda 个人推荐
(https://www.continuum.io/downloads)
用于科学计算的Python发行版,支持各大系统平台,提供包管理和环境管理的功能,预装好了众多Package(包括上述Python库)。
实例解析
Kaggle 平台及Titanic题目介绍
Kaggle 平台是著名的数据分析竞赛平台
Kaggle Datasets 网址:https://www.kaggle.com/datasets
Titanic 题目网址:https://www.kaggle.com/c/titanic
题目描述:
输入:乘客信息,包括姓名、性别、客舱等级、年龄等
输出:判别每个乘客是否幸存
题目分析:
二分类问题:Survived (=1) or Deceased (=0)
数据规模:训练集891条信息,测试集418条信息
代码解析
课程代码: https://github.com/DeepVisionTeam/TensorFlowBook/tree/master/Titanic
数据读入及预处理
使用pandas读入csv文件,读入为pandas.DataFrame对象
预处理
剔除空数据
将 ‘Sex’ 字段转换为int类型(’male’=0,’female’=1)
选取数值类型的字段,抛弃字符串类型字段
根据先验选出有用的特征字段,例如,妇女和儿童有机会先上救生艇(性别,年龄),课程示例中选取了6个字段,即特征有6个维度
利用 one-hot encoding 预处理标签,标签是一个二维 Vector,如,幸存的标签(1,0),遇难的标签(0, 1)
利用 sk-learn 将训练数据分为训练集和验证集,防止过拟合
构建计算图和训练迭代
采用逻辑回归作为该二分类问题的分类器:
y=softmax(xW+b) 使用 tf.placeholder 声明输入占位符 用 tf.Variable() 声明 Weights 和 bias 变量 构造前向传播计算图 y_pred = tf.nn.softmax(tf.matmul(input, weights) + bias) 声明代价函数:使用交叉熵(cross-entropy)作为代价函数(注意极小误差值的加入) 加入 SGD 优化算法
计算准确率
构建迭代 & 执行训练
启动Session,代入数据(feed_dict)进行计算,训练结束后使用验证集评估训练效果,train_op 优化训练过程没有返回值,cost tensor 有返回值 loss:_,loss = sess.run([train_op, cost], feed_dict=feed)
数据量小可直接用 numpy,数据量更建议使用 tensor
存储和加载训练模型等
通过 tf.train.Save 来存储和加载模型
TensorBoard 可视化
TensorBoard 的工作方式是启动一个 Web 服务,该服务进程从 TensorFlow 程序执行所得的事件日志文件(event files)中读取概要(summary)数据,然后将数据在网页中绘制成可视化的图表。
传统机器学习的优化技巧
数据可视化
帮助理解数据,分析特征重要程度,便于筛选特征
特征工程
数据清洗 & 预处理
对存在字段缺失、格式错误的样本进行处理
二值化(如,是否贵族)、标准化、归一化(如,年龄0~1),可以加快收敛,减小类内干扰,避免过拟合
根据阈值过滤掉方差小(相关性小)的变量
通过计算变量与标签的相关系数,留下相关性高的特征
根据决策树或随机森林,选择重要程度高的特征
利用PCA降维等算法,对数据进行变换,选择区分度最高的特征组合
经典机器学习算法模型
逻辑回归
SVM
神经网络
决策树
随机森林(Titanic 竞赛中效果最好的方法)
TFLearn、Keras介绍及示例程序解析
TFLearn (https://github.com/tflearn/tflearn)
基于 TensorFlow 的更高层 API 库,具有更高程度的模块化,无缝兼容 TensorFlow 原生用法
官方推出的仿照 scikit-learn 设计的高级 API,对常用的分类回归模型进行了封装,使得实现一个分类器仅需几行代码。
Keras (https://keras.io/)
高级神经网络API库,代码可运行于TensorFlow、CNTK或Theano之上,也支持 TensorBoard,与 TensorFlow 在性能上没有区别(以TF为后端)。
TensorFlow学习资源:Awesome TensorFlow https://github.com/jtoy/awesome-tensorflow
相关阅读
没看够?点击阅读原文~~边学边看~~
原文链接:
http://blog.csdn.net/applecore123456/article/details/74065229